import { Kitchensolution } from './kitchensolution';
import { EntityObjectFactory } from './../entityObjectFactory';
var EntityObject = EntityObjectFactory.GetEntityObjectType();

export interface DeviceInfo {
    address: string;
    port: number;
    extDeviceType: string;
    instructionSet: string
}

export interface deviceDevice {
    type: string;
    address: string;
    productName: string;
    manufacturer: string;
    deviceInfo: DeviceInfo,
    connectionType: string
}

export interface Ads {
    retCode: number;
    version: string;
    ads_id: string;
    name: string;
    url: string;
    adapterIds: Array<string>;
    adsId: string
}

export interface Device {

}

export class Device extends EntityObject<Device> {
    constructor(ctx?) { super(ctx); }
    id: string;
    device: deviceDevice;
    ads: Ads;
    deviceInfo: DeviceInfo;
    kitchenSolutionId: string;
    kitchenSolution?: Kitchensolution;
    storeId: string;
    usage: string;
    instructionSet: string;
    isShared: Boolean;
    connectionType: string;
    deviceType: string;
    name: string;
    deviceName: string;
    state: string;
    extended?: any;
    transferOut?: string;
    transferIn?: Array<string>;
    toString() { return "devices"; }
}